package com.wxmit.starter.file;

import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Optional;

/**
 *  文件公共 API 接口
 * @author huangxiong
 * @date 2024/03/20 09:27
 */
public interface FileApi {


    /**
     *  校验文件合法性
     * @param file 文件
     * @return Optional<错误信息> 若 optional 为空 则表示无异常
     */
    Optional<String> validateFile(MultipartFile file);

    /**
     *  上传文件
     * @param module 文件模块
     * @param file 文件
     * @return 文件路径
     */
    String uploadFile(String module, MultipartFile file) throws IOException;

    /**
     *  下载文件
     * @param path 文件路径
     * @return 文件数据
     */
    byte[] downloadFile(String path);

    /**
     *  删除文件
     * @param path 文件路径
     * @return 是否删除成功
     */
    boolean deleteFile(String path);

}
